<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>课堂实验3</title>
</head>
<body>
 <p>陈柏江-229971301</p >
 <div>第一</div>
 <script>
 let a1, b1, c1 = [1, 2, 3,];
 console.log(a1, b1, c1);

 let [a2, b2, c2] = [1, 2, 3,];
 console.log(a2, b2, c2);

 let [a3, b3, c3] = [1, , 3,];
 console.log(a3, b3, c3);

 let [a4, b4] = [1];
 console.log(a4, b4);

 let { y: a5, b5 } = { x: 1, y: 2 };
 console.log(a5, b5);
 let { a6, b6 } = 123;
 console.log(a6, b6);
 //上面赋值的123既不是对象也不是数组，不能被解构，所以a6、b6是两个空值
 </script>
 <div>第二</div>
 <script>
 let set = new Set();
 set.add(1);
 set.add(2);
 set.add(3);
 set.delete(2);

 let i = set.values();
 console.log(i.next());//{value: 1, done: false}
 console.log(i.next());//{value: 3, done: false}
 console.log(i.next());//{value: undefined, done: true}
 </script>
 <div>第三</div>
 <script>
 let map = new Map();
 map.set(1, "a");
 map.set(2, "b");
 map.set(3, "c");
 map.set(4, "d");

 for (let i = 1; i <= map.size; i++) {
 console.log(map.get(i));
 }
 map.forEach(function (value, key) {
     console.log(value);
 });
 for (let v of map.values()) {
 console.log(v);
 }
 for (var prop in map) {
     console.log(prop);
 }
 //JS中，for…in他不会枚举其内部的键值对，
 //由于Map对象的内置属性可能不包括任何在控制台上可见的内容，因此这段代码可能不会输出任何内容。
 </script>
 <div>第四</div><!--229970132 王意诚-->
 <script>
 let arr1 = [1, 2, 3];
 let arr2 = arr1;//将arr1的引用赋值给了arr2,arr1与arr2为同一个数组
 console.log(arr1 = arr2);//“=”为赋值操作符，所以这里并没有实际意义，相反会出现该数组（arr1或arr2）的地址
 let arr3 = [...arr1];//…拓展运算符，创建一个包含arr1所有元素的数组，是新数组
 console.log(arr1 == arr3);//==检查了两个数组是否为同一个数组，当然为false
 </script>

<script>
     //源代码
     /*
            let arr4=[1,2,3];
            arr4.forEach(function(v,k){
                console.log(v);
            })
            */
     let arr4 = [1, 2, 3]; 
     arr4.forEach((v, k) => { 
     console.log(v); 
     });
     </script>
     <div>第五</div><!---229970132 王意诚-->
     <script>
     Array.of(1, 2, 3).filter(i => i > 1).forEach(i => console.log(i));
     //使用Array.of方法创建一个新的数组，该数组包含元素1,2,和3
     //使用filter方法遍历数组，并返回一个新数组，该数组只包含原始数组中大于1的元素，它将返回一个新数组 [2, 3]
     //使用forEach方法遍历过滤后的数组，并打印出数组的每个元素
     let fib = n => n > 1 ? fib(n - 1) + fib(n - 2) : n;
     //n>m?a:b三目运算符（类似）如果n>m就输出a,反之b
     //所以，这题就是，n是否大于1，做的是：前的加法还是返回n;依此类推；
     </script>
     <script>
     class Animal{
     constructor(name){
     this.name = name;
     }
     shount(){
     console.log(this.name);
     }
     }
     class Dog extends Animal{
     constructor(name,age){
     super(name);
    this.age = age;
     }
     eat(){
     console.log("他是有"+this.age);
     }
     }
     var dog=new Dog("niek",18);
     dog.shount();
     dog.eat();
     </script>
    </body>
    
    </html>